/**
 * This is my code.
 *
 * $Id$
 */
package fi.jab.esb.config.xml;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Sql Message Filter Type</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link fi.jab.esb.config.xml.SqlMessageFilterType#isErrorDelete <em>Error Delete</em>}</li>
 *   <li>{@link fi.jab.esb.config.xml.SqlMessageFilterType#getInsertTimestampColumn <em>Insert Timestamp Column</em>}</li>
 *   <li>{@link fi.jab.esb.config.xml.SqlMessageFilterType#getMessageColumn <em>Message Column</em>}</li>
 *   <li>{@link fi.jab.esb.config.xml.SqlMessageFilterType#getMessageIdColumn <em>Message Id Column</em>}</li>
 *   <li>{@link fi.jab.esb.config.xml.SqlMessageFilterType#getOrderBy <em>Order By</em>}</li>
 *   <li>{@link fi.jab.esb.config.xml.SqlMessageFilterType#isPostDelete <em>Post Delete</em>}</li>
 *   <li>{@link fi.jab.esb.config.xml.SqlMessageFilterType#getStatusColumn <em>Status Column</em>}</li>
 *   <li>{@link fi.jab.esb.config.xml.SqlMessageFilterType#getTablename <em>Tablename</em>}</li>
 *   <li>{@link fi.jab.esb.config.xml.SqlMessageFilterType#getWhereCondition <em>Where Condition</em>}</li>
 * </ul>
 * </p>
 *
 * @see fi.jab.esb.config.xml.XmlPackage#getSqlMessageFilterType()
 * @model extendedMetaData="name='sql-message-filter_._type' kind='empty'"
 * @generated
 */
public interface SqlMessageFilterType extends EObject
{
  /**
   * Returns the value of the '<em><b>Error Delete</b></em>' attribute.
   * The default value is <code>"true"</code>.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * 
   * 						If true, records in error will be deleted after attempted picked up for processing.(e.g. no rows with a 'E' for
   * 						error, in column defined in 'status_column')
   * 					
   * <!-- end-model-doc -->
   * @return the value of the '<em>Error Delete</em>' attribute.
   * @see #isSetErrorDelete()
   * @see #unsetErrorDelete()
   * @see #setErrorDelete(boolean)
   * @see fi.jab.esb.config.xml.XmlPackage#getSqlMessageFilterType_ErrorDelete()
   * @model default="true" unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
   *        extendedMetaData="kind='attribute' name='error-delete'"
   * @generated
   */
  boolean isErrorDelete();

  /**
   * Sets the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#isErrorDelete <em>Error Delete</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Error Delete</em>' attribute.
   * @see #isSetErrorDelete()
   * @see #unsetErrorDelete()
   * @see #isErrorDelete()
   * @generated
   */
  void setErrorDelete(boolean value);

  /**
   * Unsets the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#isErrorDelete <em>Error Delete</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #isSetErrorDelete()
   * @see #isErrorDelete()
   * @see #setErrorDelete(boolean)
   * @generated
   */
  void unsetErrorDelete();

  /**
   * Returns whether the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#isErrorDelete <em>Error Delete</em>}' attribute is set.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return whether the value of the '<em>Error Delete</em>' attribute is set.
   * @see #unsetErrorDelete()
   * @see #isErrorDelete()
   * @see #setErrorDelete(boolean)
   * @generated
   */
  boolean isSetErrorDelete();

  /**
   * Returns the value of the '<em><b>Insert Timestamp Column</b></em>' attribute.
   * The default value is <code>"insert_timestamp"</code>.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * Holds the timestamp when the record was inserted.
   * <!-- end-model-doc -->
   * @return the value of the '<em>Insert Timestamp Column</em>' attribute.
   * @see #isSetInsertTimestampColumn()
   * @see #unsetInsertTimestampColumn()
   * @see #setInsertTimestampColumn(String)
   * @see fi.jab.esb.config.xml.XmlPackage#getSqlMessageFilterType_InsertTimestampColumn()
   * @model default="insert_timestamp" unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.String"
   *        extendedMetaData="kind='attribute' name='insert-timestamp-column'"
   * @generated
   */
  String getInsertTimestampColumn();

  /**
   * Sets the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#getInsertTimestampColumn <em>Insert Timestamp Column</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Insert Timestamp Column</em>' attribute.
   * @see #isSetInsertTimestampColumn()
   * @see #unsetInsertTimestampColumn()
   * @see #getInsertTimestampColumn()
   * @generated
   */
  void setInsertTimestampColumn(String value);

  /**
   * Unsets the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#getInsertTimestampColumn <em>Insert Timestamp Column</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #isSetInsertTimestampColumn()
   * @see #getInsertTimestampColumn()
   * @see #setInsertTimestampColumn(String)
   * @generated
   */
  void unsetInsertTimestampColumn();

  /**
   * Returns whether the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#getInsertTimestampColumn <em>Insert Timestamp Column</em>}' attribute is set.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return whether the value of the '<em>Insert Timestamp Column</em>' attribute is set.
   * @see #unsetInsertTimestampColumn()
   * @see #getInsertTimestampColumn()
   * @see #setInsertTimestampColumn(String)
   * @generated
   */
  boolean isSetInsertTimestampColumn();

  /**
   * Returns the value of the '<em><b>Message Column</b></em>' attribute.
   * The default value is <code>"message"</code>.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * The field that holds the serialized message.
   * <!-- end-model-doc -->
   * @return the value of the '<em>Message Column</em>' attribute.
   * @see #isSetMessageColumn()
   * @see #unsetMessageColumn()
   * @see #setMessageColumn(String)
   * @see fi.jab.esb.config.xml.XmlPackage#getSqlMessageFilterType_MessageColumn()
   * @model default="message" unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.String"
   *        extendedMetaData="kind='attribute' name='message-column'"
   * @generated
   */
  String getMessageColumn();

  /**
   * Sets the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#getMessageColumn <em>Message Column</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Message Column</em>' attribute.
   * @see #isSetMessageColumn()
   * @see #unsetMessageColumn()
   * @see #getMessageColumn()
   * @generated
   */
  void setMessageColumn(String value);

  /**
   * Unsets the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#getMessageColumn <em>Message Column</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #isSetMessageColumn()
   * @see #getMessageColumn()
   * @see #setMessageColumn(String)
   * @generated
   */
  void unsetMessageColumn();

  /**
   * Returns whether the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#getMessageColumn <em>Message Column</em>}' attribute is set.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return whether the value of the '<em>Message Column</em>' attribute is set.
   * @see #unsetMessageColumn()
   * @see #getMessageColumn()
   * @see #setMessageColumn(String)
   * @generated
   */
  boolean isSetMessageColumn();

  /**
   * Returns the value of the '<em><b>Message Id Column</b></em>' attribute.
   * The default value is <code>"message_id"</code>.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * A unique key (PK) in the table.
   * <!-- end-model-doc -->
   * @return the value of the '<em>Message Id Column</em>' attribute.
   * @see #isSetMessageIdColumn()
   * @see #unsetMessageIdColumn()
   * @see #setMessageIdColumn(String)
   * @see fi.jab.esb.config.xml.XmlPackage#getSqlMessageFilterType_MessageIdColumn()
   * @model default="message_id" unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.String"
   *        extendedMetaData="kind='attribute' name='message-id-column'"
   * @generated
   */
  String getMessageIdColumn();

  /**
   * Sets the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#getMessageIdColumn <em>Message Id Column</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Message Id Column</em>' attribute.
   * @see #isSetMessageIdColumn()
   * @see #unsetMessageIdColumn()
   * @see #getMessageIdColumn()
   * @generated
   */
  void setMessageIdColumn(String value);

  /**
   * Unsets the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#getMessageIdColumn <em>Message Id Column</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #isSetMessageIdColumn()
   * @see #getMessageIdColumn()
   * @see #setMessageIdColumn(String)
   * @generated
   */
  void unsetMessageIdColumn();

  /**
   * Returns whether the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#getMessageIdColumn <em>Message Id Column</em>}' attribute is set.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return whether the value of the '<em>Message Id Column</em>' attribute is set.
   * @see #unsetMessageIdColumn()
   * @see #getMessageIdColumn()
   * @see #setMessageIdColumn(String)
   * @generated
   */
  boolean isSetMessageIdColumn();

  /**
   * Returns the value of the '<em><b>Order By</b></em>' attribute.
   * The default value is <code>""</code>.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * 
   * 						A where clause, not including the word where, which is applied to the query.
   * 					
   * <!-- end-model-doc -->
   * @return the value of the '<em>Order By</em>' attribute.
   * @see #isSetOrderBy()
   * @see #unsetOrderBy()
   * @see #setOrderBy(String)
   * @see fi.jab.esb.config.xml.XmlPackage#getSqlMessageFilterType_OrderBy()
   * @model default="" unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.String"
   *        extendedMetaData="kind='attribute' name='order-by'"
   * @generated
   */
  String getOrderBy();

  /**
   * Sets the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#getOrderBy <em>Order By</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Order By</em>' attribute.
   * @see #isSetOrderBy()
   * @see #unsetOrderBy()
   * @see #getOrderBy()
   * @generated
   */
  void setOrderBy(String value);

  /**
   * Unsets the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#getOrderBy <em>Order By</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #isSetOrderBy()
   * @see #getOrderBy()
   * @see #setOrderBy(String)
   * @generated
   */
  void unsetOrderBy();

  /**
   * Returns whether the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#getOrderBy <em>Order By</em>}' attribute is set.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return whether the value of the '<em>Order By</em>' attribute is set.
   * @see #unsetOrderBy()
   * @see #getOrderBy()
   * @see #setOrderBy(String)
   * @generated
   */
  boolean isSetOrderBy();

  /**
   * Returns the value of the '<em><b>Post Delete</b></em>' attribute.
   * The default value is <code>"true"</code>.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * 
   * 						If true, records will be deleted after processing.((e.g. no rows with a 'D' for done, in column defined in
   * 						'status_column')
   * 					
   * <!-- end-model-doc -->
   * @return the value of the '<em>Post Delete</em>' attribute.
   * @see #isSetPostDelete()
   * @see #unsetPostDelete()
   * @see #setPostDelete(boolean)
   * @see fi.jab.esb.config.xml.XmlPackage#getSqlMessageFilterType_PostDelete()
   * @model default="true" unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean"
   *        extendedMetaData="kind='attribute' name='post-delete'"
   * @generated
   */
  boolean isPostDelete();

  /**
   * Sets the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#isPostDelete <em>Post Delete</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Post Delete</em>' attribute.
   * @see #isSetPostDelete()
   * @see #unsetPostDelete()
   * @see #isPostDelete()
   * @generated
   */
  void setPostDelete(boolean value);

  /**
   * Unsets the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#isPostDelete <em>Post Delete</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #isSetPostDelete()
   * @see #isPostDelete()
   * @see #setPostDelete(boolean)
   * @generated
   */
  void unsetPostDelete();

  /**
   * Returns whether the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#isPostDelete <em>Post Delete</em>}' attribute is set.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return whether the value of the '<em>Post Delete</em>' attribute is set.
   * @see #unsetPostDelete()
   * @see #isPostDelete()
   * @see #setPostDelete(boolean)
   * @generated
   */
  boolean isSetPostDelete();

  /**
   * Returns the value of the '<em><b>Status Column</b></em>' attribute.
   * The default value is <code>"status"</code>.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * 
   * 						This column contents ('P', 'W', 'E' or 'D') indicates if the row is pending (P), in process (W), in error(E) or done
   * 						(D) if postDelete and/or errorDelete are 'true' rows might be deleted
   * 					
   * <!-- end-model-doc -->
   * @return the value of the '<em>Status Column</em>' attribute.
   * @see #isSetStatusColumn()
   * @see #unsetStatusColumn()
   * @see #setStatusColumn(String)
   * @see fi.jab.esb.config.xml.XmlPackage#getSqlMessageFilterType_StatusColumn()
   * @model default="status" unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.String"
   *        extendedMetaData="kind='attribute' name='status-column'"
   * @generated
   */
  String getStatusColumn();

  /**
   * Sets the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#getStatusColumn <em>Status Column</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Status Column</em>' attribute.
   * @see #isSetStatusColumn()
   * @see #unsetStatusColumn()
   * @see #getStatusColumn()
   * @generated
   */
  void setStatusColumn(String value);

  /**
   * Unsets the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#getStatusColumn <em>Status Column</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #isSetStatusColumn()
   * @see #getStatusColumn()
   * @see #setStatusColumn(String)
   * @generated
   */
  void unsetStatusColumn();

  /**
   * Returns whether the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#getStatusColumn <em>Status Column</em>}' attribute is set.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return whether the value of the '<em>Status Column</em>' attribute is set.
   * @see #unsetStatusColumn()
   * @see #getStatusColumn()
   * @see #setStatusColumn(String)
   * @generated
   */
  boolean isSetStatusColumn();

  /**
   * Returns the value of the '<em><b>Tablename</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * The table in which esb message are stored.
   * <!-- end-model-doc -->
   * @return the value of the '<em>Tablename</em>' attribute.
   * @see #setTablename(String)
   * @see fi.jab.esb.config.xml.XmlPackage#getSqlMessageFilterType_Tablename()
   * @model dataType="org.eclipse.emf.ecore.xml.type.String" required="true"
   *        extendedMetaData="kind='attribute' name='tablename'"
   * @generated
   */
  String getTablename();

  /**
   * Sets the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#getTablename <em>Tablename</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Tablename</em>' attribute.
   * @see #getTablename()
   * @generated
   */
  void setTablename(String value);

  /**
   * Returns the value of the '<em><b>Where Condition</b></em>' attribute.
   * The default value is <code>""</code>.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * 
   * 						A where clause, not including the word where, which is applied to the query.
   * 					
   * <!-- end-model-doc -->
   * @return the value of the '<em>Where Condition</em>' attribute.
   * @see #isSetWhereCondition()
   * @see #unsetWhereCondition()
   * @see #setWhereCondition(String)
   * @see fi.jab.esb.config.xml.XmlPackage#getSqlMessageFilterType_WhereCondition()
   * @model default="" unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.String"
   *        extendedMetaData="kind='attribute' name='where-condition'"
   * @generated
   */
  String getWhereCondition();

  /**
   * Sets the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#getWhereCondition <em>Where Condition</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Where Condition</em>' attribute.
   * @see #isSetWhereCondition()
   * @see #unsetWhereCondition()
   * @see #getWhereCondition()
   * @generated
   */
  void setWhereCondition(String value);

  /**
   * Unsets the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#getWhereCondition <em>Where Condition</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see #isSetWhereCondition()
   * @see #getWhereCondition()
   * @see #setWhereCondition(String)
   * @generated
   */
  void unsetWhereCondition();

  /**
   * Returns whether the value of the '{@link fi.jab.esb.config.xml.SqlMessageFilterType#getWhereCondition <em>Where Condition</em>}' attribute is set.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return whether the value of the '<em>Where Condition</em>' attribute is set.
   * @see #unsetWhereCondition()
   * @see #getWhereCondition()
   * @see #setWhereCondition(String)
   * @generated
   */
  boolean isSetWhereCondition();

} // SqlMessageFilterType
